package pe.gob.sunarp.entidad;

import java.io.Serializable;
import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Set;


/**
 * The persistent class for the TRANSACCION database table.
 * 
 */
@Entity
@Table(name="TRANSACCION")
public class Transaccion implements Serializable {
	private static final long serialVersionUID = 1L;
	private long transId;
	private String anomes;
	private BigDecimal codGrupoLibroArea;
	private BigDecimal costo;
	private BigDecimal costoReal;
	private Date fecHor;
	private String ip;
	private String sesionId;
	private String strBusq;
	private String tipoUsr;
	private Set<AudAfiliacion> audAfiliacions;
	private Set<AudBusqTitulo> audBusqTitulos;
	private Set<AudConsultaPartida> audConsultaPartidas;
	private Set<AudConsultaTitulo> audConsultaTitulos;
	private Set<AudVisualizPartida> audVisualizPartidas;
	private Set<Consumo> consumos;
	private TmServicio tmServicio;
	private OficRegistral oficRegistral;
	private Cuenta cuenta;

    public Transaccion() {
    }


	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="TRANS_ID", unique=true, nullable=false)
	public long getTransId() {
		return this.transId;
	}

	public void setTransId(long transId) {
		this.transId = transId;
	}


	@Column(length=6)
	public String getAnomes() {
		return this.anomes;
	}

	public void setAnomes(String anomes) {
		this.anomes = anomes;
	}


	@Column(name="COD_GRUPO_LIBRO_AREA", nullable=false)
	public BigDecimal getCodGrupoLibroArea() {
		return this.codGrupoLibroArea;
	}

	public void setCodGrupoLibroArea(BigDecimal codGrupoLibroArea) {
		this.codGrupoLibroArea = codGrupoLibroArea;
	}


	@Column(nullable=false, precision=12, scale=2)
	public BigDecimal getCosto() {
		return this.costo;
	}

	public void setCosto(BigDecimal costo) {
		this.costo = costo;
	}


	@Column(name="COSTO_REAL", precision=12, scale=2)
	public BigDecimal getCostoReal() {
		return this.costoReal;
	}

	public void setCostoReal(BigDecimal costoReal) {
		this.costoReal = costoReal;
	}


    @Temporal( TemporalType.DATE)
	@Column(name="FEC_HOR", nullable=false)
	public Date getFecHor() {
		return this.fecHor;
	}

	public void setFecHor(Date fecHor) {
		this.fecHor = fecHor;
	}


	@Column(nullable=false, length=15)
	public String getIp() {
		return this.ip;
	}

	public void setIp(String ip) {
		this.ip = ip;
	}


	@Column(name="SESION_ID", length=200)
	public String getSesionId() {
		return this.sesionId;
	}

	public void setSesionId(String sesionId) {
		this.sesionId = sesionId;
	}


	@Column(name="STR_BUSQ", length=100)
	public String getStrBusq() {
		return this.strBusq;
	}

	public void setStrBusq(String strBusq) {
		this.strBusq = strBusq;
	}


	@Column(name="TIPO_USR", nullable=false, length=1)
	public String getTipoUsr() {
		return this.tipoUsr;
	}

	public void setTipoUsr(String tipoUsr) {
		this.tipoUsr = tipoUsr;
	}


	//bi-directional many-to-one association to AudAfiliacion
	@OneToMany(mappedBy="transaccion")
	public Set<AudAfiliacion> getAudAfiliacions() {
		return this.audAfiliacions;
	}

	public void setAudAfiliacions(Set<AudAfiliacion> audAfiliacions) {
		this.audAfiliacions = audAfiliacions;
	}
	

	//bi-directional many-to-one association to AudBusqTitulo
	@OneToMany(mappedBy="transaccion")
	public Set<AudBusqTitulo> getAudBusqTitulos() {
		return this.audBusqTitulos;
	}

	public void setAudBusqTitulos(Set<AudBusqTitulo> audBusqTitulos) {
		this.audBusqTitulos = audBusqTitulos;
	}
	

	//bi-directional many-to-one association to AudConsultaPartida
	@OneToMany(mappedBy="transaccion")
	public Set<AudConsultaPartida> getAudConsultaPartidas() {
		return this.audConsultaPartidas;
	}

	public void setAudConsultaPartidas(Set<AudConsultaPartida> audConsultaPartidas) {
		this.audConsultaPartidas = audConsultaPartidas;
	}
	

	//bi-directional many-to-one association to AudConsultaTitulo
	@OneToMany(mappedBy="transaccion")
	public Set<AudConsultaTitulo> getAudConsultaTitulos() {
		return this.audConsultaTitulos;
	}

	public void setAudConsultaTitulos(Set<AudConsultaTitulo> audConsultaTitulos) {
		this.audConsultaTitulos = audConsultaTitulos;
	}
	

	//bi-directional many-to-one association to AudVisualizPartida
	@OneToMany(mappedBy="transaccion")
	public Set<AudVisualizPartida> getAudVisualizPartidas() {
		return this.audVisualizPartidas;
	}

	public void setAudVisualizPartidas(Set<AudVisualizPartida> audVisualizPartidas) {
		this.audVisualizPartidas = audVisualizPartidas;
	}
	

	//bi-directional many-to-one association to Consumo
	@OneToMany(mappedBy="transaccion")
	public Set<Consumo> getConsumos() {
		return this.consumos;
	}

	public void setConsumos(Set<Consumo> consumos) {
		this.consumos = consumos;
	}
	

	//bi-directional many-to-one association to TmServicio
    @ManyToOne
	@JoinColumn(name="SERVICIO_ID", nullable=false)
	public TmServicio getTmServicio() {
		return this.tmServicio;
	}

	public void setTmServicio(TmServicio tmServicio) {
		this.tmServicio = tmServicio;
	}
	

	//bi-directional many-to-one association to OficRegistral
    @ManyToOne
	@JoinColumns({
		@JoinColumn(name="OFIC_REG_ID", referencedColumnName="OFIC_REG_ID"),
		@JoinColumn(name="REG_PUB_ID", referencedColumnName="REG_PUB_ID")
		})
	public OficRegistral getOficRegistral() {
		return this.oficRegistral;
	}

	public void setOficRegistral(OficRegistral oficRegistral) {
		this.oficRegistral = oficRegistral;
	}
	

	//bi-directional many-to-one association to Cuenta
    @ManyToOne
	@JoinColumn(name="CUENTA_ID", nullable=false)
	public Cuenta getCuenta() {
		return this.cuenta;
	}

	public void setCuenta(Cuenta cuenta) {
		this.cuenta = cuenta;
	}
	
}